package com.gitee.target123.develop.login.util;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class EnumUtil {

    /**
     * 枚举类中所有枚举对象的name列表
     *
     * @param clazz 枚举类
     * @return name列表
     */
    public static List<String> getNames(Class<? extends Enum<?>> clazz) {
        final Enum<?>[] enums = clazz.getEnumConstants();
        if (null == enums) {
            return Collections.emptyList();
        }
        final List<String> list = new ArrayList<>(enums.length);
        for (Enum<?> e : enums) {
            list.add(e.name());
        }
        return list;
    }

    /**
     * 字符串转枚举，调用{@link Enum#valueOf(Class, String)}
     * @param <T> 枚举类型泛型
     * @param enumClass 枚举类
     * @param value 值
     * @return 枚举值
     * @since 4.1.13
     */
    public static <T extends Enum<T>> T fromString(Class<T> enumClass, String value) {
        return Enum.valueOf(enumClass, value);
    }
}
